package com.itlong.cloud.app.dao;

import com.itlong.cloud.POJO.DTO.app.old.AppOldUserInfoDto;
import com.itlong.cloud.POJO.PO.OperationLogPO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 * 旧版APP的我版块数据访问接口
 * </desc>
 *
 * @createDate 2017/11/1
 */

@Mapper
@Repository
public interface IAppOldMineDao extends IAbstractBaseDao<AppOldUserInfoDto> {

    /**
     * <desc>
     *      旧版APP_根据项目编号获取项目信息
     * </desc>
     *
     * @param projectId
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/1
     */
    Map<String, Object> getProjectById(String projectId);

    /**
     * <desc>
     *      旧版APP_根据用户ID与项目编号获取用户房间的楼栋信息
     * </desc>
     *
     * @param params
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/1
     */
    List<Map<String, Object>> getUserOwnBuild(Map params);

    /**
     * <desc>
     *      旧版APP_根据用户ID与项目编号、楼栋ID获取用户房间的单元信息
     * </desc>
     *
     * @param params
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/1
     */
    List<Map<String, Object>> getUserOwnUnit(Map params);

    /**
     * <desc>
     *      旧版APP_根据用户ID与项目编号、楼栋ID、单元ID获取用户房间的房间信息
     * </desc>
     *
     * @param params
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/1
     */
    List<Map<String, Object>> getUserOwnRoom(Map params);

    /**
     * <desc>
     *      旧版APP_获取当前用户已授权的用户信息列表
     * </desc>
     *
     * @param params
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/2
     */
    List<Map<String, Object>> getChildUserByPage(Map params);

    /**
     * <desc>
     *     旧版APP_修改授权人备注
     * </desc>
     * @param params
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/2
     */
    int updateChildRemark(Map params);

    /**
     * <desc>
     *     旧版APP_删除家人,查询出用户与二级用户的关系记录
     * </desc>
     * @param params
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/3
     */
    List<Map<String,Object>> getAllChildUser(Map params);

    /**
     * <desc>
     *     旧版APP_删除家人，删除人与人授权关系
     * </desc>
     * @param list
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/3
     */
    int delUserRelationBatch(List<String> list);

    /**
     * <desc>
     *     旧版APP_根据用户房间信息查询用户与房间的记录
     * </desc>
     * @param params
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/6
     */
    int selectUserRoomPk(Map params);

    /**
     * <desc>
     *     旧版APP_删除用户与房间的关系
     * </desc>
     * @param list
     * @return
     * @author cuiduanwu
     * @createDate 2017/11/6
     */
    int delUserRoomBatch(List<Integer> list);

    /**
     * <desc>
     *     旧版APP_获取所有正在服务中的小区信息，用户所拥有小区除外
     * </desc>
     * @param userId
     * @return
     * @throws Exception
     * @author cuiduanwu
     * @createDate 2017/11/9
     */
    List<Map<String,Object>> getServiceProject(@Param("userId") String userId);

    /**
     * <desc>
     *     旧版APP_检查用户与项目关系是否存在
     * </desc>
     * @param params
     * @return
     */
    int checkUserProject(Map params);

    /**
     * <desc>
     *      旧版APP_用户删除小区
     * </desc>
     * @param
     * @return
     */
    int delProjectByUser(@Param("userId") String userId,@Param("projectId")String projectId);

    /**
     * <desc>
     *     旧版APP_运行日志上传
     * </desc>
     * @param list
     * @return
     */
    int saveRunLogBatch(List<OperationLogPO> list);


}
